using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Gratamira.CapaNegocio;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinMaskedEdit;


namespace Gratamira.Presentacion
{
    public partial class frmMaeEmpresa : frmBaseMaestra, IBaseMaestra
    {

        private Empresa mEmpresa = new Empresa();
        private BindingSource fuenteEnlace = new BindingSource();

        public frmMaeEmpresa(estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            base.Estado = pModoPantalla;
        }

        public frmMaeEmpresa(Empresa pEmpresa, estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            mEmpresa = pEmpresa;
            base.Estado = pModoPantalla;
        }

        public override void deshabilitarControles()
        {
            //No permite modificar el contenido de los controles
            txtCodigo.Enabled = false;
            mtbNIT.Enabled = false;
            txtNombre.Enabled = false;
            txtDireccion.Enabled = false;
            mtbTelefono.Enabled = false;
            mtbFax.Enabled = false;
            txtPais.Enabled = false;
        }

        public override void habilitarControles()
        {
            //Permite modificar el contenido de los controles
            txtCodigo.Enabled = false;
            mtbNIT.Enabled = true;
            txtNombre.Enabled = true;
            txtDireccion.Enabled = true;
            mtbTelefono.Enabled = true;
            mtbFax.Enabled = true;
            txtPais.Enabled = true;
        }

        public override void unirDatosClaseForma()
        {
            fuenteEnlace.DataSource = mEmpresa;
            txtCodigo.DataBindings.Add("Text", fuenteEnlace, "EmpresaID");
            mtbNIT.DataBindings.Add("Text", fuenteEnlace, "NIT");
            txtNombre.DataBindings.Add("Text", fuenteEnlace, "Nombre");
            txtDireccion.DataBindings.Add("Text", fuenteEnlace, "Direccion");
            mtbTelefono.DataBindings.Add("Text", fuenteEnlace, "Telefono");
            mtbFax.DataBindings.Add("Text", fuenteEnlace, "Fax");
            txtPais.DataBindings.Add("Text", fuenteEnlace, "Pais");


        }

        //public override void unirDatosFormaClase()
        //{
        //    mEmpresa.EmpresaID = txtCodigo.Text;
        //    mEmpresa.Nit = mtbNIT.Text.Substring(0, 1) + mtbNIT.Text.Substring(4, 3) + mtbNIT.Text.Substring(11,8);
        //    mEmpresa.Nombre = txtNombre.Text;
        //    mEmpresa.Direccion = txtDireccion.Text;
        //    mEmpresa.Telefono = mtbTelefono.Text;
        //    mEmpresa.Fax = mtbFax.Text;
        //    mEmpresa.Pais = txtPais.Text;
        //}

        public override bool salvarCambios()
        {
            mEmpresa.UsuarioCreacion = Usuario.NombreUsuario;
            mEmpresa.UsuarioModificacion = Usuario.NombreUsuario;
            return mEmpresa.insertarEmpresa();
        }

        public override void actualizarCambios()
        {
            mEmpresa.UsuarioModificacion = Usuario.NombreUsuario;
            mEmpresa.actualizarEmpresa();
        }

        public override void limpiarControles()
        {
            txtCodigo.Text = "";
            mtbNIT.Text = "";
            txtNombre.Text = "";
            txtDireccion.Text = "";
            mtbTelefono.Text = "";
            mtbFax.Text = "";
            txtPais.Text = "";
        }

        public override void leerDatosAuditoria(out string pUsuaCrea, out string pFechCrea, out string pUsuaModi, out string pFechModi)
        {
            pUsuaCrea = mEmpresa.UsuarioCreacion;
            pUsuaModi = mEmpresa.UsuarioModificacion;
            pFechCrea = mEmpresa.FechaCreacion;
            pFechModi = mEmpresa.FechaModificacion;
        }

        public override bool hayDatosModificados()
        {
            return mEmpresa.Modificada;
        }

        public override bool verificarDatos()
        {
            if (utilidadesPresentacion.verificarContenido(txtCodigo, epEmpresa) && utilidadesPresentacion.verificarContenido(mtbNIT, epEmpresa) &&
                utilidadesPresentacion.verificarContenido(txtNombre, epEmpresa) && utilidadesPresentacion.verificarContenido(txtDireccion,epEmpresa) &&
                utilidadesPresentacion.verificarContenido(mtbTelefono,epEmpresa) && utilidadesPresentacion.verificarContenido(txtPais,epEmpresa))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private void txtCodigo_Enter(object sender, EventArgs e)
        {
            txtCodigo.SelectAll();
        }

        private void mtbNIT_Enter(object sender, EventArgs e)
        {
            mtbNIT.SelectAll();
        }

        private void txtNombre_Enter(object sender, EventArgs e)
        {
            txtNombre.SelectAll();
        }

        private void txtDireccion_Enter(object sender, EventArgs e)
        {
            txtDireccion.SelectAll();
        }

        private void mtbTelefono_Enter(object sender, EventArgs e)
        {
            mtbTelefono.SelectAll();
        }

        private void mtbFax_Enter(object sender, EventArgs e)
        {
            mtbFax.SelectAll();
        }

        private void txtPais_Enter(object sender, EventArgs e)
        {
            txtPais.SelectAll();
        }

    }
}